package pe.cliente.proyecto.core.daobase;
import java.util.Date;
import java.util.List;

import pe.adra.core.dao.DAOUtil;
import pe.adra.core.ext.soporte.SuportEntidad;
import pe.adra.util.exception.DAOException;
import pe.cliente.proyecto.core.daobase.impl.ParametroDAOBaseImpl.ParametroDAOBaseUtil;
import pe.cliente.proyecto.dominio.Parametro;

public interface ParametroDAOBase{

	public static final String STR_ENTIDAD = "Parametro";
	public static final String CAMPO_ID= "id";
	public static final String PARAMETRO_CAMPO_PARAMETROPADRE= "parametroPadre";
	public static final String CAMPO_NOMBRE= "nombre";
	public static final String CAMPO_VALUE= "value";
	public static final String CAMPO_ACTIVO= "activo";
	public static final String CAMPO_CODIGOUSUARIO= "codigoUsuario";
	public static final String CAMPO_FECHAREGISTRO= "fechaRegistro";
	public static final String CAMPO_FECHAACTUALIZADA= "fechaActualizada";

	
	public static final String SQL_QUERY = DAOUtil.SQL_SELECT + DAOUtil.SQL_SE + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;
	public static final String SQL_QUERY_COUNT = DAOUtil.SQL_SELECT + DAOUtil.SQL_COUNT + "(" + DAOUtil.SQL_SE + ")" + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;

	public static final String SQL_QUERY_CBO =   DAOUtil.SQL_SELECT + DAOUtil.SQL_SEA + CAMPO_ID + "," + DAOUtil.SQL_SEA + CAMPO_NOMBRE + DAOUtil.SQL_FROM + STR_ENTIDAD + DAOUtil.SQL_SE;

	
	public int countListaParametro( Parametro filtro ) throws DAOException;
	public int countListaParametro( Parametro filtro, Date finit, Date ffin ) throws DAOException;
	public List<Parametro> getListaParametro( Parametro filtro, int inicio, int fin, String strSort, String strOrder, SuportEntidad... innerjoin ) throws DAOException;
	public List<Parametro> getListaParametro( Parametro filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, SuportEntidad... innerjoin ) throws DAOException;

	public List<Parametro> getCboParametro() throws DAOException;
	public List<Parametro> getCboParametro( Parametro filtro ) throws DAOException;
	public List<Parametro> getParametroPorID( Integer[] ids , String tipo , SuportEntidad innerjoin ) throws DAOException;
	public ParametroDAOBaseUtil setQuery();

}
